home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / TEST / ASTRO.M < prev    next >
Encoding:
Text File  |  1994-06-03  |  37.4 KB  |  880 lines

  1. (* An: Thomas Tempelmann    29.5.94
  2.    Von: Jens Biele, Gaustr. 17, 67655 Kaiserslautern, tel. 0631-69787
  3.    User-Nr. A 050.003.010.5, Update 4/94 auf Compiler 4.3c
  4.    System: Mega ST 2+2 mit FPU, unter MagiX!/Ease
  5.    Wg. Internem Fehler, Ref. Telefonat am 28.5.94              *)
  6.  
  7. (* Es folgen 2 Module, IMP "Astronomy" und HauptModul "Tidal", wo letzteres
  8.    praktisch nur die gekürzte Form von ersterm ist *)
  9.  
  10. (* Noch eine Frage: Manchmal erscheint beim Abspeichern von Texten, z.B. aus
  11.    dem GME, rechts in der Menueleiste : <Schreibfehler #000>; die Texte
  12.    werden aber i.d.R. korrekt abgespeichert. Was soll das bedeuten ?    *)
  13. (*
  14. MODULE Astronomy;
  15. FROM MathLib0 IMPORT sin,cos, sincos;
  16. FROM InOut    IMPORT ReadLReal,WriteReal,WriteLn, RedirectOutput,CloseOutput;
  17. FROM SysUtil0 IMPORT ClearVar;
  18. TYPE FELD106   = ARRAY[1..106] OF LONGREAL;
  19.      FELD106_5 = ARRAY[1..106],[1..5] OF SHORTINT;
  20.      FELD93    = ARRAY[1..93 ] OF LONGREAL;
  21.      FELD27    = ARRAY[1..27 ] OF LONGREAL;
  22.      FELD5     = ARRAY[1..5  ] OF LONGREAL;
  23.      FELD93_11 = ARRAY[1..93],[1..11] OF SHORTINT;
  24.      FELD27_11 = ARRAY[1..27],[1..11] OF SHORTINT;
  25.      FELD5_11  = ARRAY[1..5 ],[1..11] OF SHORTINT;
  26.      FELD62    = ARRAY[1..62] OF LONGREAL;
  27.      FELD62_5  = ARRAY[1..62],[1..5] OF SHORTINT;
  28. (* CONST LEERFELD5_11  = FELD5_11  {{0 BY 11} BY 5};
  29.    ergibt z.Zt. internen Fehler, Adresse nicht ansprechbar,
  30.    >V#3592: 18500,108538,55788,81534 *)
  31.  
  32. VAR  CoeffLong0  : FELD106;    (* KOEFFIZIENTEN FÜR DIE NUTATION  *)
  33.      CoeffLong1  : FELD106;
  34.      CoeffObl0   : FELD106;
  35.      CoeffObl1   : FELD106;
  36.      Arg_Nut     : FELD106_5;  (* NUTATIONS-ARGUMENTE *)
  37.      Coeff_Tidal : FELD62;     (* YODER-TERMS *)
  38.      Coeff_Tidal_S1 : FELD62;  (* ZONAL TIDES INCL. OCEAN EFFECTS *)
  39.      Coeff_Tidal_S2 : FELD62;  (*  " , OUT OF PHASE               *)
  40.      Arg_Tidal   : FELD62_5;   (* ARGUMENTS FOR TIDAL TERMS       *)
  41.      A : FELD93;               (* KOEFF. UND ARGUMENTE FÜR DELTA_TB *)
  42.      B : FELD27;
  43.      C : FELD5;
  44.      D1: LONGREAL;
  45.      Arg_TB_A : FELD93_11;
  46.      Arg_TB_B : FELD27_11;
  47.      Arg_TB_C : FELD5_11;
  48.      
  49.      i,j,min,max :INTEGER; sum:LONGREAL;
  50.                            JD: LONGREAL;
  51.                             N: Nutat;
  52.      
  53. PROCEDURE DeltaTB_TT(JD:LONGREAL):LONGREAL;
  54.  BEGIN
  55.   RETURN 0.0165214
  56.  END DeltaTB_TT;
  57.  
  58. PROCEDURE Argumente0(JD:LONGREAL;VAR ARG: ARRAY OF LONGREAL);
  59.  BEGIN
  60.  END Argumente0;
  61.   
  62. PROCEDURE Nutation(JD:LONGREAL;IAU:BOOLEAN):Nutat;
  63. (* WENN BOOLEAN, DANN WIRD NUR IAU-FORMEL GENOMMEN *)
  64.  CONST rev = 1296000.0; (* 2 pi in arcsec *)
  65.        rad = 2.0/rev;
  66.  VAR N:Nutat;
  67.      i,k: INTEGER;
  68.      T,l,l_strich,F,D,OMEGA,x,y,theta,d_deltaphi,d_deltaeps: LONGREAL;
  69.      Arg: ARRAY[1..106] OF LONGREAL;
  70.  BEGIN
  71.    T:=(JD-2451545.0)/36525.0; (* Zeit in jul. Jhd. seit J2000.0 *)
  72.    l       :=(485866.733+(((0.064*T)+31.310*T)+1325.0*rev+715922.633)*T)*rad;
  73.    l_strich:=(1287099.804+(((-0.012*T)-0.577*T)+99.0*rev+715922.633)*T)*rad;
  74.    F       :=(335778.877+(((0.011*T)-13.257*T)+1342.0*rev+295263.137)*T)*rad;
  75.    D       :=(1072261.307+(((0.019*T)-6.891*T)+1236.0*rev+1105601.328)*T)*rad;
  76.    OMEGA   :=(450160.280+(((0.008*T)+7.455*T)-5.0*rev-482890.539)*T)*rad;
  77.    (* l : mean anomaly of the moon;
  78.       lstrich : mean anomaly of the sun;
  79.       F       : difference L-OMEGA, where L is the mean longitude of the moon;
  80.       D       : mean elongation of the moon from the sun;
  81.       OMEGA   : long. of the asc. node of the moon's mean orbit on the
  82.                 ecliptic, measured from the mean equinox of date         *)
  83.    (* Umwandlung von arcsec ins Bogenmass und Zurueckfuehrung auf das Inter-
  84.       vall 0..2 pi  *)
  85.          WriteReal(l,20,10); WriteLn;
  86.          WriteReal(l_strich,20,10); WriteLn;
  87.          WriteReal(F,20,10);WriteLn;
  88.          WriteReal(D,20,10);WriteLn;
  89.          WriteReal(OMEGA,20,10); WriteLn;
  90.    N.Long:=0.0; N.Obl:=0.0;
  91.    FOR i:=1 TO 106 DO
  92.      Arg[i]:= l*LFLOAT(Arg_Nut[i,1])
  93.              +l_strich*LFLOAT(Arg_Nut[i,2])
  94.              +F*LFLOAT(Arg_Nut[i,3])
  95.              +D*LFLOAT(Arg_Nut[i,4])
  96.              +OMEGA*LFLOAT(Arg_Nut[i,5]);
  97.      sincos(Arg[i],x,y);
  98.      N.Long:=N.Long+(CoeffLong0[i]+CoeffLong1[i]*T)*x;
  99.      N.Obl :=N.Obl+(CoeffObl0[i]+CoeffObl1[i]*T)*y;
  100.    END;
  101.    (* Geodesic Nutation, Fukushima, 1990; in IERS techn. note #13 *)
  102.    N.Long:=N.Long-0.000153*sin(l_strich)-0.000002*sin(2.0*l_strich);
  103.    IF (NOT IAU) THEN
  104.    (* Apply differential corrections d_deltaphi,d_deltaeps for highest
  105.       precision !! *)
  106.    theta:=T*36525.0*2.0/418.0; (* Argument of free core nutation *)
  107.    sincos(theta,x,y);
  108.    d_deltaphi:=-35.0-273.5*T+0.815*x+0.124*y;  (* bias,slope,free core *)
  109.    d_deltaeps:=-4.1-4.7*T+0.091*x+0.315*y;
  110.    sincos(Arg[ 1],x,y);                        (* Nutation corrections *)
  111.    d_deltaphi:=d_deltaphi-5.80*x+3.34*y;
  112.    d_deltaeps:=d_deltaeps+2.16*x+2.68*y;
  113.    sincos(Arg[ 9],x,y);
  114.    d_deltaphi:=d_deltaphi+1.482*x-1.215*y;
  115.    d_deltaeps:=d_deltaeps-0.441*x-0.482*y;
  116.    sincos(Arg[31],x,y);
  117.    d_deltaphi:=d_deltaphi-0.537*x-0.067*y;
  118.    d_deltaeps:=d_deltaeps-0.102*x+0.303*y;
  119.    sincos(Arg[ 2],x,y);
  120.    d_deltaphi:=d_deltaphi+1.100*x;
  121.    d_deltaeps:=d_deltaeps-0.100*y;
  122.    sincos(Arg[10],x,y);
  123.    d_deltaphi:=d_deltaphi+5.210*x+1.059*y;
  124.    d_deltaeps:=d_deltaeps-0.270*x+2.010*y;
  125.    sincos(Arg[32],x,y);
  126.    d_deltaphi:=d_deltaphi-0.107*x-0.104*y;
  127.    d_deltaeps:=d_deltaeps+0.030*x-0.043*y;
  128.    sincos(Arg[11],x,y);
  129.    d_deltaphi:=d_deltaphi-0.037*x+0.008*y;
  130.    d_deltaeps:=d_deltaeps-0.051*x+0.040*y;
  131.    sincos(Arg[33],x,y);
  132.    d_deltaphi:=d_deltaphi-0.314*x-0.094*y;
  133.    d_deltaeps:=d_deltaeps-0.011*x+0.050*y;
  134.    sincos(Arg[34],x,y);
  135.    d_deltaphi:=(d_deltaphi-0.234*x-0.087*y)*0.001;
  136.    d_deltaeps:=(d_deltaeps-0.006*x+0.056*y)*0.001;
  137.    N.Long:=N.Long+d_deltaphi;
  138.    N.Obl :=N.Obl +d_deltaeps;
  139.    END; (*IF NOT IAU *)
  140.    RETURN N
  141.  END Nutation;
  142.  
  143.  
  144. BEGIN (* Astronomy, Initialisierung der konstanten Variablen *)
  145. (* 1980 IAU Theory of Nutation *)
  146.  
  147.   CoeffLong0:=FELD106 {-171996.,2062.,46.,11.,-3.,-3.,-2.,1.,-13187.,1426.,-517.,217.,129.,
  148.   48.,-22.,17.,-15.,-16.,-12.,-6.,-5.,4.,4.,-4.,1.,1.,-1.,1.,1.,-1.,-2274.,712.,-386.,-301.,-158.,
  149.   123.,63.,63.,-58.,-59.,-51.,-38.,29.,29.,-31.,26.,21.,16.,-13.,-10.,-7.,7.,-7.,-8.,6.,6.,-6.,-7.,6.,
  150.   -5.,5.,-5.,-4.,4.,-4.,3.,3.,-3.,-3.,-2.,-3.,-3.,2.,-2.,2.,-2.,2.,2.,1.,-1.,1.,-2.,-1.,1.,-1.,-1.,1.,1.,1.,
  151.   -1.,-1.,1.,1.,-1.,1.,1.,-1. BY 7,1.,-1.,1.};
  152.   
  153.   CoeffLong1:=FELD106 {-174.2,0.2,0.0 BY 6, -1.6,-3.4,1.2,-0.5,0.1,0.0,0.0,
  154.   -0.1,0.0,0.1,0.0 BY 12, -0.2,0.1,-0.4,0.0 BY 4, 0.1,-0.1, 0.0 BY 67};
  155.   
  156.   CoeffObl0:=FELD106 {92085.,-895.,-24.,0.,1.,0.,1.,0.,5736.,54.,224.,-95.,-70.,1.,0.,0.,9.,
  157.   7.,6.,3.,3.,-2.,-2.,0. BY 7, 977.,-7.,200.,129.,-1.,-53.,-2.,-33.,32.,26.,27.,16.,-1.,-12.,13.,
  158.   -1.,-10.,-8.,7.,5.,0.,-3.,3.,3.,0.,-3.,3.,3.,-3.,3.,0.,3.,0. BY 5, 1. BY 5, -1.,1.,-1.,1.,0.,-1.,-1.,
  159.   0.,-1.,1.,0.,-1.,1.,1.,0.,0.,-1.,0. BY 17};
  160.   
  161.   CoeffObl1:=FELD106 {8.9,0.5,0.0 BY 6, -3.1,-0.1,-0.6,0.3,0.0 BY 18, -0.5,0.0,
  162.   0.0,-0.1,0.0 BY 72};
  163.   
  164.   Arg_Nut:=FELD106_5  {{  0,  0,  0,  0,  1  },
  165.                        {  0,  0,  0,  0,  2  },
  166.                        { -2,  0,  2,  0,  1  },
  167.                        {  2,  0, -2,  0,  0  },
  168.                        { -2,  0,  2,  0,  2  },
  169.                        {  1, -1,  0, -1,  0  },
  170.                        {  0, -2,  2, -2,  1  },
  171.                        {  2,  0, -2,  0,  1  },
  172.                        {  0,  0,  2, -2,  2  },
  173.                        {  0,  1,  0,  0,  0  },
  174.                        {  0,  1,  2, -2,  2  },
  175.                        {  0, -1,  2, -2,  2  },
  176.                        {  0,  0,  2, -2,  1  },
  177.                        {  2,  0,  0, -2,  0  },
  178.                        {  0,  0,  2, -2,  0  },
  179.                        {  0,  2,  0,  0,  0  },
  180.                        {  0,  1,  0,  0,  1  },
  181.                        {  0,  2,  2, -2,  2  },
  182.                        {  0, -1,  0,  0,  1  },
  183.                        { -2,  0,  0,  2,  1  },
  184.                        {  0, -1,  2, -2,  1  },
  185.                        {  2,  0,  0, -2,  1  },
  186.                        {  0,  1,  2, -2,  1  },
  187.                        {  1,  0,  0, -1,  0  },
  188.                        {  2,  1,  0, -2,  0  },
  189.                        {  0,  0, -2,  2,  1  },
  190.                        {  0,  1, -2,  2,  0  },
  191.                        {  0,  1,  0,  0,  2  },
  192.                        { -1,  0,  0,  1,  1  },
  193.                        {  0,  1,  2, -2,  0  },
  194.                        {  0,  0,  2,  0,  2  },
  195.                        {  1,  0,  0,  0,  0  },
  196.                        {  0,  0,  2,  0,  1  },
  197.                        {  1,  0,  2,  0,  2  },
  198.                        {  1,  0,  0, -2,  0  },
  199.                        { -1,  0,  2,  0,  2  },
  200.                        {  0,  0,  0,  2,  0  },
  201.                        {  1,  0,  0,  0,  1  },
  202.                        { -1,  0,  0,  0,  1  },
  203.                        { -1,  0,  2,  2,  2  },
  204.                        {  1,  0,  2,  0,  1  },
  205.                        {  0,  0,  2,  2,  2  },
  206.                        {  2,  0,  0,  0,  0  },
  207.                        {  1,  0,  2, -2,  2  },
  208.                        {  2,  0,  2,  0,  2  },
  209.                        {  0,  0,  2,  0,  0  },
  210.                        { -1,  0,  2,  0,  1  },
  211.                        { -1,  0,  0,  2,  1  },
  212.                        {  1,  0,  0, -2,  1  },
  213.                        { -1,  0,  2,  2,  1  },
  214.                        {  1,  1,  0, -2,  0  },
  215.                        {  0,  1,  2,  0,  2  },
  216.                        {  0, -1,  2,  0,  2  },
  217.                        {  1,  0,  2,  2,  2  },
  218.                        {  1,  0,  0,  2,  0  },
  219.                        {  2,  0,  2, -2,  2  },
  220.                        {  0,  0,  0,  2,  1  },
  221.                        {  0,  0,  2,  2,  1  },
  222.                        {  1,  0,  2, -2,  1  },
  223.                        {  0,  0,  0, -2,  1  },
  224.                        {  1, -1,  0,  0,  0  },
  225.                        {  2,  0,  2,  0,  1  },
  226.                        {  0,  1,  0, -2,  0  },
  227.                        {  1,  0, -2,  0,  0  },
  228.                        {  0,  0,  0,  1,  0  },
  229.                        {  1,  1,  0,  0,  0  },
  230.                        {  1,  0,  2,  0,  0  },
  231.                        {  1, -1,  2,  0,  2  },
  232.                        { -1, -1,  2,  2,  2  },
  233.                        { -2,  0,  0,  0,  1  },
  234.                        {  3,  0,  2,  0,  2  },
  235.                        {  0, -1,  2,  2,  2  },
  236.                        {  1,  1,  2,  0,  2  },
  237.                        { -1,  0,  2, -2,  1  },
  238.                        {  2,  0,  0,  0,  1  },
  239.                        {  1,  0,  0,  0,  2  },
  240.                        {  3,  0,  0,  0,  0  },
  241.                        {  0,  0,  2,  1,  2  },
  242.                        { -1,  0,  0,  0,  2  },
  243.                        {  1,  0,  0, -4,  0  },
  244.                        { -2,  0,  2,  2,  2  },
  245.                        { -1,  0,  2,  4,  2  },
  246.                        {  2,  0,  0, -4,  0  },
  247.                        {  1,  1,  2, -2,  2  },
  248.                        {  1,  0,  2,  2,  1  },
  249.                        { -2,  0,  2,  4,  2  },
  250.                        { -1,  0,  4,  0,  2  },
  251.                        {  1, -1,  0, -2,  0  },
  252.                        {  2,  0,  2, -2,  1  },
  253.                        {  2,  0,  2,  2,  2  },
  254.                        {  1,  0,  0,  2,  1  },
  255.                        {  0,  0,  4, -2,  2  },
  256.                        {  3,  0,  2, -2,  2  },
  257.                        {  1,  0,  2, -2,  0  },
  258.                        {  0,  1,  2,  0,  1  },
  259.                        { -1, -1,  0,  2,  1  },
  260.                        {  0,  0, -2,  0,  1  },
  261.                        {  0,  0,  2, -1,  2  },
  262.                        {  0,  1,  0,  2,  0  },
  263.                        {  1,  0, -2, -2,  0  },
  264.                        {  0, -1,  2,  0,  1  },
  265.                        {  1,  1,  0, -2,  1  },
  266.                        {  1,  0, -2,  2,  0  },
  267.                        {  2,  0,  0,  2,  0  },
  268.                        {  0,  0,  2,  4,  2  },
  269.                        {  0,  1,  0,  1,  0  }};
  270.  
  271.   (* Time Transformation TB-TT, L. Fairhead & P. Bretagnon 1990 *)
  272.  
  273.   A:=FELD93 {1656.674564,22.417471,13.839792,4.770086,4.676740,2.256707,
  274.   1.694205,1.554905,1.276839,1.193379,1.115322,0.794185,0.600309,0.496817,
  275.   0.486306,0.468597,0.447061,0.435206,0.432392,0.375510,0.243085,0.230685,
  276.   0.203747,0.173435,0.159080,0.143935,0.137927,0.119979,0.118971,0.116120,
  277.   0.101868,0.098358,0.080164,0.079645,0.075019,0.064397,0.063814,0.062617,
  278.   0.058844,0.054139,0.048373,0.048042,0.046551,0.042732,0.042560,0.042411,
  279.   0.040759,0.040480,0.040184,0.036955,0.036564,0.036507,0.034867,0.033529,
  280.   0.033477,0.032438,0.032423,0.030215,0.029862,0.029247,0.028244,0.027567,
  281.   0.025196,0.024816,0.022567,0.022509,0.021691,0.020937,0.020322,0.017673,
  282.   0.017806,0.016155,0.015974,0.015949,0.015078,0.014751,0.014318,0.014223,
  283.   0.013671,0.012462,0.012420,0.011942,0.011847,0.011707,0.011622,0.010962,
  284.   0.010825,0.010396,0.010453,0.010099,0.009858,0.009963,0.009370};
  285.                                             
  286.   B:=FELD27 {102.156724,1.706807,0.269668,0.265919,0.210568,0.077996,0.059146,
  287.   0.054764,0.034420,0.033595,0.032088,0.029198,0.027764,0.025190,0.024976,
  288.   0.022997,0.021774,0.017925,0.013794,0.013276,0.012869,0.012152,0.011774,
  289.   0.011081,0.010143,0.010084,0.009357};
  290.                                             
  291.   C := FELD5 {4.322990,0.12,0.11,0.01245,0.084541};
  292.                                             
  293.   D1:= 0.143388;
  294.                        
  295.   Arg_TB_A :=FELD93_11 {{  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0  },
  296.                         {  0,  0,  1,  0, -1,  0,  0,  0,  0,  0,  0  },
  297.                         {  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0  },
  298.                         {  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0  },
  299.                         {  0,  0,  1,  0,  0, -1,  0,  0,  0,  0,  0  },
  300.                         {  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0  },
  301.                         {  0,  0,  4, -8,  3,  0,  0,  0,  0,  0,  0  },
  302.                         {  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0  },
  303.                         {  0,  2, -2,  0,  0,  0,  0,  0,  0,  0,  0  },
  304.                         {  0,  0,  1,  0, -2,  0,  0,  0,  0,  0,  0  },
  305.                         {  0,  1, -1,  0,  0,  0,  0,  0,  0,  0,  0  },
  306.                         {  0,  0,  2,  0, -2,  0,  0,  0,  0,  0,  0  },
  307.                         {  0,  2, -3,  0,  0,  0,  0,  0,  0,  0,  0  },
  308.                         {  0,  0,  1,  0,  0,  0, -1,  0,  0,  0,  0  },
  309.                         {  0,  0,  2, -2,  0,  0,  0,  0,  0,  0,  0  },
  310.                         {  0,  0,  1,  0,  0,  0,  0, -1,  0,  0,  0  },
  311.                         {  0,  8,-13,  0,  0,  0,  0,  0,  0,  0,  0  },
  312.                         {  0,  0,  1, -2,  0,  0,  1,  0,  0,  0,  0  },
  313.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  314.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  315.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  316.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  317.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  318.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  319.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  320.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  321.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  322.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  323.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  324.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  325.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  326.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  327.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  328.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  329.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  330.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  331.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  332.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  333.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  334.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  335.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  336.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  337.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  338.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  339.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  340.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  341.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  342.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  343.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  344.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  345.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  346.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  347.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  348.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  349.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  350.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  351.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  352.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  353.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  354.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  355.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  356.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  357.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  358.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  359.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  360.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  361.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  362.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  363.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  364.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  365.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  366.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  367.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  368.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  369.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  370.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  371.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  372.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  373.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  374.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  375.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  376.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  377.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  378.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  379.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  380.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  381.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  382.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  383.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  384.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  385.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  386.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  387.                         {  0,  0,  0,  0,  0,  0,  0,  0,  3,  0, -1  }};
  388.                         
  389.   Arg_TB_B := FELD27_11 {{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  390.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  391.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  392.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  393.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  394.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  395.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  396.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  397.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  398.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  399.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  400.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  401.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  402.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  403.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  404.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  405.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  406.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  407.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  408.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  409.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  410.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  411.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  412.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  413.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  414.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  },
  415.                         {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0  }};
  416.                                             
  417.   ClearVar(Arg_TB_C);
  418.                               Arg_TB_C[1,3]:=1;
  419.                               Arg_TB_C[2,3]:=2;
  420.                               Arg_TB_C[3,6]:=1;
  421.                               Arg_TB_C[4,5]:=1;
  422.                               Arg_TB_C[5,3]:=4;
  423.                               Arg_TB_C[5,4]:=-8;
  424.                               Arg_TB_C[5,5]:=3;
  425.                               
  426.                               
  427.                               
  428.   Arg_Tidal:= FELD62_5 {{ 1,0,2,2,2  },
  429.                         { 2,0,2,0,1  },
  430.                         { 2,0,2,0,2  },
  431.                         { 0,0,2,2,1  },
  432.                         { 0,0,2,2,2  },
  433.                         { 1,0,2,0,0  },
  434.                         { 1,0,2,0,1  },
  435.                         { 1,0,2,0,2  },
  436.                         { 3,0,0,0,0  },
  437.                         { -1,0,2,2,1 },
  438.                         { -1,0,2,2,2 },
  439.                         { 1,0,0,2,0  },
  440.                         { 2,0,2,-2,2 },
  441.                         { 0,1,2,0,2  },
  442.                         { 0,0,2,0,0  },
  443.                         { 0,0,2,0,1  },
  444.                         { 0,0,2,0,2  },
  445.                         { 2,0,0,0,-1 },
  446.                         { 2,0,0,0,0  },
  447.                         { 2,0,0,0,1  },
  448.                         { 0,-1,2,0,2 },
  449.                         { 0,0,0,2,-1 },
  450.                         { 0,0,0,2,0  },
  451.                         { 0,0,0,2,1  },
  452.                         { 0,-1,0,2,0 },
  453.                         { 1,0,2,-2,1 },
  454.                         { 1,0,2,-2,2 },
  455.                         { 1,1,0,0,0  },
  456.                         { -1,0,2,0,0 },
  457.                         { -1,0,2,0,1 },
  458.                         { -1,0,2,0,2 },
  459.                         { 1,0,0,0,-1 },
  460.                         { 1,0,0,0,0  },
  461.                         { 1,0,0,0,1  },
  462.                         { 0,0,0,1,0  },
  463.                         { 1,-1,0,0,0 },
  464.                         { -1,0,0,2,-1},
  465.                         { -1,0,0,2,0 },
  466.                         { -1,0,0,2,1 },
  467.                         { 1,0,-2,2,-1},
  468.                         { -1,-1,0,2,0},
  469.                           
  470.                         { 0,2,2,-2,2 },
  471.                         { 0,1,2,-2,1 },
  472.                         { 0,1,2,-2,2 },
  473.                         { 0,0,2,-2,0 },
  474.                         { 0,0,2,-2,1 },
  475.                         { 0,0,2,-2,2 },
  476.                         { 0,2,0,0,0  },
  477.                         { 2,0,0,-2,-1},
  478.                         { 2,0,0,-2,0 },
  479.                         { 2,0,0,-2,1 },
  480.                         { 0,-1,2,-2,1},
  481.                         { 0,1,0,0,-1 },
  482.                         { 0,-1,2,-2,2},
  483.                         { 0,1,0,0,0  },
  484.                         { 0,1,0,0,1  },
  485.                         { 1,0,0,-1,0 },
  486.                         { 2,0,-2,0,0 },
  487.                         { -2,0,2,0,1 },
  488.                         { -1,1,0,1,0 },
  489.                         { 0,0,0,0,2  },
  490.                         { 0,0,0,0,1  }};
  491.                            
  492.   Coeff_Tidal := FELD62 {  -0.024,
  493.                     -0.040,
  494.                     -0.099,
  495.                     -0.051,
  496.                     -0.123,
  497.                     -0.039,
  498.                     -0.411,
  499.                     -0.993,
  500.                     -0.018,
  501.                     -0.082,
  502.                     -0.197,
  503.                     -0.076,
  504.                      0.022,
  505.                      0.025,
  506.                     -0.299,
  507.                     -3.208,
  508.                     -7.757,
  509.                      0.022,
  510.                     -0.338,
  511.                      0.018,
  512.                     -0.024,
  513.                      0.047,
  514.                     -0.734,
  515.                     -0.053,
  516.                     -0.051,
  517.                      0.050,
  518.                      0.101,
  519.                      0.039,
  520.                      0.047,
  521.                      0.177,
  522.                      0.435,
  523.                      0.534,
  524.                     -8.261,
  525.                      0.544,
  526.                      0.047,
  527.                     -0.055,
  528.                      0.118,
  529.                     -1.824,
  530.                      0.132,
  531.                      0.018,
  532.                     -0.086,
  533.                     
  534.                     -0.057,
  535.                      0.033,
  536.                     -1.885,
  537.                      0.251,
  538.                      1.170,
  539.                    -48.247,
  540.                     -0.194,
  541.                      0.049,
  542.                     -0.547,
  543.                      0.037,
  544.                     -0.045,
  545.                      0.092,
  546.                      0.828,
  547.                    -15.359,
  548.                     -0.138,
  549.                      0.035,
  550.                     -0.137,
  551.                      0.422,
  552.                      0.040,
  553.                      7.900,
  554.                  -1617.268   };
  555.    (* Based on YODER et al., 1981  ; 1991 IERS Annual Report, pp.I-19/29 *)
  556.                  
  557.   Coeff_Tidal_S1 := FELD62 {  -0.02,
  558.                       -0.04,
  559.                       -0.10,
  560.                       -0.05,
  561.                       -0.12,
  562.                       -0.04,
  563.                       -0.40,
  564.                       -0.98,
  565.                       -0.02,
  566.                       -0.08,
  567.                       -0.20,
  568.                       -0.08,
  569.                        0.02,
  570.                        0.03,
  571.                       -0.30,
  572.                       -3.20,
  573.                       -7.73,
  574.                        0.02,
  575.                       -0.34,
  576.                        0.02,
  577.                       -0.02,
  578.                        0.05,
  579.                       -0.72,
  580.                       -0.05,
  581.                       -0.05,
  582.                        0.05,
  583.                        0.10,
  584.                        0.04,
  585.                        0.05,
  586.                        0.18,
  587.                        0.44,
  588.                        0.53,
  589.                       -8.33,
  590.                        0.54,
  591.                        0.05,
  592.                       -0.06,
  593.                        0.12,
  594.                       -1.84,
  595.                        0.13,
  596.                        0.02,
  597.                       -0.09,
  598.                       
  599.                       -0.06,
  600.                        0.03,
  601.                       -1.88,
  602.                        0.25,
  603.                        1.17,
  604.                      -48.84,
  605.                       -0.19,
  606.                        0.05,
  607.                       -0.55,
  608.                        0.04,
  609.                       -0.05,
  610.                        0.09,
  611.                        0.83,
  612.                      -15.55,
  613.                       -0.14,
  614.                        0.03,
  615.                       -0.14,
  616.                        0.42,
  617.                        0.04,
  618.                        7.90,
  619.                    -1637.68};  (* Zonal Tide Terms UT1S incl. Ocean Effects
  620.                                   (Dickmann 1991; n. IERS T.N.13, table 10.2 *)
  621.                  
  622.   ClearVar(Coeff_Tidal_S2);
  623.   Coeff_Tidal_S2[ 7]:= 0.01;
  624.   Coeff_Tidal_S2[ 8]:= 0.03;
  625.   Coeff_Tidal_S2[16]:= 0.09;
  626.   Coeff_Tidal_S2[17]:= 0.21;
  627.   Coeff_Tidal_S2[23]:= 0.02;
  628.   Coeff_Tidal_S2[33]:= 0.12;
  629.   Coeff_Tidal_S2[38]:= 0.02;
  630.   Coeff_Tidal_S2[47]:= 0.11;
  631.   Coeff_Tidal_S2[55]:= 0.02;
  632.   Coeff_Tidal_S2[62]:= 0.10;   (* Zonal Tide Terms , out-of-phase (cos) *)
  633.                       
  634.                                 
  635.   (* zu testzwecken *)
  636. (*  RedirectOutput('D:\SUM3.DAT',FALSE);
  637.   FOR i:=5 TO 1 BY -1 DO
  638.     sum:=0.0;
  639.     FOR j:= i TO 5 DO
  640.       sum:=sum+C[j];
  641.     END;
  642.     WriteReal(sum,15,7); WriteLn;
  643.   END;
  644.   CloseOutput;   WriteReal(9999999.,20,10);
  645.   REPEAT
  646.     ReadLReal(JD);
  647.     N:=Nutation(JD);
  648.     WriteReal(N.Long,15,7); WriteLn;
  649.     WriteReal(N.Obl,15,7); WriteLn;
  650.   UNTIL JD<=0.0;  *)
  651. END Astronomy.
  652. *)
  653.  
  654. (**************************************************************************)
  655.  
  656.  
  657. MODULE TIDAL;
  658.  
  659. FROM MathLib0 IMPORT sin,cos, sincos;
  660. FROM InOut    IMPORT ReadLReal,WriteReal,WriteLn, RedirectOutput,CloseOutput;
  661. FROM SysUtil0 IMPORT ClearVar;
  662.  
  663. TYPE FELD62    = ARRAY[1..62] OF LONGREAL;
  664.      FELD62_5  = ARRAY[1..62],[1..5] OF SHORTINT;
  665.  
  666. VAR  Coeff_Tidal : FELD62;     (* YODER-TERMS *)
  667.      Coeff_Tidal_S1 : FELD62;  (* ZONAL TIDES INCL. OCEAN EFFECTS *)
  668.      Coeff_Tidal_S2 : FELD62;  (*  " , OUT OF PHASE               *)
  669.      Arg_Tidal   : FELD62_5;   (* ARGUMENTS FOR TIDAL TERMS       *)
  670.  
  671. BEGIN
  672.   Arg_Tidal:= FELD62_5 {{ 1,0,2,2,2  },
  673.                         { 2,0,2,0,1  },
  674.                         { 2,0,2,0,2  },
  675.                         { 0,0,2,2,1  },
  676.                         { 0,0,2,2,2  },
  677.                         { 1,0,2,0,0  },
  678.                         { 1,0,2,0,1  },
  679.                         { 1,0,2,0,2  },
  680.                         { 3,0,0,0,0  },
  681.                         { -1,0,2,2,1 },
  682.                         { -1,0,2,2,2 },
  683.                         { 1,0,0,2,0  },
  684.                         { 2,0,2,-2,2 },
  685.                         { 0,1,2,0,2  },
  686.                         { 0,0,2,0,0  },
  687.                         { 0,0,2,0,1  },
  688.                         { 0,0,2,0,2  },
  689.                         { 2,0,0,0,-1 },
  690.                         { 2,0,0,0,0  },
  691.                         { 2,0,0,0,1  },
  692.                         { 0,-1,2,0,2 },
  693.                         { 0,0,0,2,-1 },
  694.                         { 0,0,0,2,0  },
  695.                         { 0,0,0,2,1  },
  696.                         { 0,-1,0,2,0 },
  697.                         { 1,0,2,-2,1 },
  698.                         { 1,0,2,-2,2 },
  699.                         { 1,1,0,0,0  },
  700.                         { -1,0,2,0,0 },
  701.                         { -1,0,2,0,1 },
  702.                         { -1,0,2,0,2 },
  703.                         { 1,0,0,0,-1 },
  704.                         { 1,0,0,0,0  },
  705.                         { 1,0,0,0,1  },
  706.                         { 0,0,0,1,0  },
  707.                         { 1,-1,0,0,0 },
  708.                         { -1,0,0,2,-1},
  709.                         { -1,0,0,2,0 },
  710.                         { -1,0,0,2,1 },
  711.                         { 1,0,-2,2,-1},
  712.                         { -1,-1,0,2,0},
  713.                           
  714.                         { 0,2,2,-2,2 },
  715.                         { 0,1,2,-2,1 },
  716.                         { 0,1,2,-2,2 },
  717.                         { 0,0,2,-2,0 },
  718.                         { 0,0,2,-2,1 },
  719.                         { 0,0,2,-2,2 },
  720.                         { 0,2,0,0,0  },
  721.                         { 2,0,0,-2,-1},
  722.                         { 2,0,0,-2,0 },
  723.                         { 2,0,0,-2,1 },
  724.                         { 0,-1,2,-2,1},
  725.                         { 0,1,0,0,-1 },
  726.                         { 0,-1,2,-2,2},
  727.                         { 0,1,0,0,0  },
  728.                         { 0,1,0,0,1  },
  729.                         { 1,0,0,-1,0 },
  730.                         { 2,0,-2,0,0 },
  731.                         { -2,0,2,0,1 },
  732.                         { -1,1,0,1,0 },
  733.                         { 0,0,0,0,2  },
  734.                         { 0,0,0,0,1  }};
  735.                            
  736.   Coeff_Tidal := FELD62 {  -0.024,
  737.                     -0.040,
  738.                     -0.099,
  739.                     -0.051,
  740.                     -0.123,
  741.                     -0.039,
  742.                     -0.411,
  743.                     -0.993,
  744.                     -0.018,
  745.                     -0.082,
  746.                     -0.197,
  747.                     -0.076,
  748.                      0.022,
  749.                      0.025,
  750.                     -0.299,
  751.                     -3.208,
  752.                     -7.757,
  753.                      0.022,
  754.                     -0.338,
  755.                      0.018,
  756.                     -0.024,
  757.                      0.047,
  758.                     -0.734,
  759.                     -0.053,
  760.                     -0.051,
  761.                      0.050,
  762.                      0.101,
  763.                      0.039,
  764.                      0.047,
  765.                      0.177,
  766.                      0.435,
  767.                      0.534,
  768.                     -8.261,
  769.                      0.544,
  770.                      0.047,
  771.                     -0.055,
  772.                      0.118,
  773.                     -1.824,
  774.                      0.132,
  775.                      0.018,
  776.                     -0.086,
  777.                     
  778.                     -0.057,
  779.                      0.033,
  780.                     -1.885,
  781.                      0.251,
  782.                      1.170,
  783.                    -48.247,
  784.                     -0.194,
  785.                      0.049,
  786.                     -0.547,
  787.                      0.037,
  788.                     -0.045,
  789.                      0.092,
  790.                      0.828,
  791.                    -15.359,
  792.                     -0.138,
  793.                      0.035,
  794.                     -0.137,
  795.                      0.422,
  796.                      0.040,
  797.                      7.900,
  798.                  -1617.268   };
  799.    (* Based on YODER et al., 1981  ; 1991 IERS Annual Report, pp.I-19/29 *)
  800.                  
  801.   Coeff_Tidal_S1 := FELD62 {  -0.02,
  802.                       -0.04,
  803.                       -0.10,
  804.                       -0.05,
  805.                       -0.12,
  806.                       -0.04,
  807.                       -0.40,
  808.                       -0.98,
  809.                       -0.02,
  810.                       -0.08,
  811.                       -0.20,
  812.                       -0.08,
  813.                        0.02,
  814.                        0.03,
  815.                       -0.30,
  816.                       -3.20,
  817.                       -7.73,
  818.                        0.02,
  819.                       -0.34,
  820.                        0.02,
  821.                       -0.02,
  822.                        0.05,
  823.                       -0.72,
  824.                       -0.05,
  825.                       -0.05,
  826.                        0.05,
  827.                        0.10,
  828.                        0.04,
  829.                        0.05,
  830.                        0.18,
  831.                        0.44,
  832.                        0.53,
  833.                       -8.33,
  834.                        0.54,
  835.                        0.05,
  836.                       -0.06,
  837.                        0.12,
  838.                       -1.84,
  839.                        0.13,
  840.                        0.02,
  841.                       -0.09,
  842.                       
  843.                       -0.06,
  844.                        0.03,
  845.                       -1.88,
  846.                        0.25,
  847.                        1.17,
  848.                      -48.84,
  849.                       -0.19,
  850.                        0.05,
  851.                       -0.55,
  852.                        0.04,
  853.                       -0.05,
  854.                        0.09,
  855.                        0.83,
  856.                      -15.55,
  857.                       -0.14,
  858.                        0.03,
  859.                       -0.14,
  860.                        0.42,
  861.                        0.04,
  862.                        7.90,
  863.                    -1637.68};  (* Zonal Tide Terms UT1S incl. Ocean Effects
  864.                                   (Dickmann 1991; n. IERS T.N.13, table 10.2 *)
  865.                  
  866.   ClearVar(Coeff_Tidal_S2);
  867.   Coeff_Tidal_S2[ 7]:= 0.01;
  868.   Coeff_Tidal_S2[ 8]:= 0.03;
  869.   Coeff_Tidal_S2[16]:= 0.09;
  870.   Coeff_Tidal_S2[17]:= 0.21;
  871.   Coeff_Tidal_S2[23]:= 0.02;
  872.   Coeff_Tidal_S2[33]:= 0.12;
  873.   Coeff_Tidal_S2[38]:= 0.02;
  874.   Coeff_Tidal_S2[47]:= 0.11;
  875.   Coeff_Tidal_S2[55]:= 0.02;
  876.   Coeff_Tidal_S2[62]:= 0.10;   (* Zonal Tide Terms , out-of-phase (cos) *)
  877.                       
  878.  
  879. END TIDAL.
  880.